home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / program / blx13.zip / MDIEDIT.ZIP / MFILEWND.CPP < prev    next >
C/C++ Source or Header  |  1991-10-14  |  2KB  |  103 lines

  1. // mfilewnd.cpp
  2.  
  3. #include <owl.h>
  4. #include <inputdia.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8. #include "mfilewnd.h"
  9. #include "editfram.h"
  10.  
  11. void TMyFileWindow::GetWindowClass(WNDCLASS &AWndClass) {
  12.     TFileWindow::GetWindowClass(AWndClass);
  13.     AWndClass.hIcon    = LoadIcon(GetApplication()->hInstance,
  14.         "MDIWin");
  15.     }
  16.  
  17. static int max(int a, int b) {
  18.     if(a > b)
  19.         return a;
  20.     else
  21.         return b;
  22.     }
  23.  
  24. static int min(int a, int b) {
  25.     if(a < b)
  26.         return a;
  27.     else
  28.         return b;
  29.     }
  30.  
  31. void TMyFileWindow::CMGotoLine(RTMessage) {
  32.     char InputText[6];
  33.     static int LineNum = 0;
  34.  
  35.     sprintf(InputText, "%d", LineNum);
  36.     if(GetApplication()->ExecDialog(new TInputDialog(this,
  37.         "Go to Line Number",
  38.         "&Enter New Line Number:",
  39.             InputText,
  40.         sizeof (InputText)))
  41.         == IDOK) {
  42.         int Start, End;
  43.         int CurrentLine;
  44.         int NewSelection;
  45.  
  46.         LineNum = atoi(InputText);
  47.         Editor->GetSelection(Start, End);
  48.         CurrentLine = Editor->GetLineFromPos(End);
  49.         LineNum = max(0, LineNum);
  50.         LineNum = min(LineNum, Editor->GetNumLines());
  51.         Editor->Scroll(0, LineNum - CurrentLine);
  52.         NewSelection = Editor->GetLineIndex(LineNum);
  53.         Editor->SetSelection(NewSelection, NewSelection);
  54.         }
  55.     }
  56.  
  57. void TMyFileWindow::WMMDIActivate(RTMessage Msg) {
  58.     TMDIEditFrame *Parent = (TMDIEditFrame *) (this->Parent);
  59.  
  60.     if(Msg.WParam == TRUE)
  61.         Parent->MDISetMenu(MenuName, WindowMenuPosition);
  62.     else
  63.         // If window is deactivated, set the menu to the default.
  64.         Parent->MDISetMenu(0,DEFAULTWINDOWMENUPOS);
  65.     TFileWindow::WMMDIActivate(Msg);
  66.     }
  67.  
  68.  
  69. void *TMyFileWindow::read(ipstream& is) {
  70.     TFileWindow::read(is);
  71.  
  72.     BOOL NameIsNumeric;
  73.     is >> NameIsNumeric;
  74.     if ( NameIsNumeric )
  75.         is >> (long)(MenuName);
  76.     else
  77.         MenuName = is.freadString();
  78.     is >> WindowMenuPosition;
  79.  
  80.     return this;
  81.     }
  82.  
  83. void TMyFileWindow::write(opstream& os) {
  84.     if(FileName == NULL)
  85.         FileName = _fstrdup("");
  86.     TFileWindow::write(os);
  87.  
  88.     BOOL NameIsNumeric = (HIWORD(MenuName) == NULL);
  89.     os << NameIsNumeric;
  90.     if ( NameIsNumeric )
  91.         os << (long)(MenuName);
  92.     else
  93.         os.fwriteString(MenuName);
  94.     os << WindowMenuPosition;
  95.     }
  96.  
  97. TStreamable *TMyFileWindow::build(void) {
  98.     return new TMyFileWindow(streamableInit);
  99.     }
  100.  
  101. TStreamableClass RegMyFileWindow("TMyFileWindow", TMyFileWindow::build,
  102.     __DELTA(TMyFileWindow));
  103.